/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ccore.constraint.util;

import ccore.common.CElement;

import ccore.common.CNode;
import ccore.constraint.*;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see ccore.constraint.ConstraintPackage
 * @generated
 */
public class ConstraintAdapterFactory extends AdapterFactoryImpl {
	/**
	 * The cached model package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static ConstraintPackage modelPackage;

	/**
	 * Creates an instance of the adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ConstraintAdapterFactory() {
		if (modelPackage == null) {
			modelPackage = ConstraintPackage.eINSTANCE;
		}
	}

	/**
	 * Returns whether this factory is applicable for the type of the object.
	 * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
	 * @return whether this factory is applicable for the type of the object.
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object object) {
		if (object == modelPackage) {
			return true;
		}
		if (object instanceof EObject) {
			return ((EObject)object).eClass().getEPackage() == modelPackage;
		}
		return false;
	}

	/**
	 * The switch the delegates to the <code>createXXX</code> methods.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstraintSwitch<Adapter> modelSwitch =
		new ConstraintSwitch<Adapter>() {
			@Override
			public Adapter caseCConstraintExpr(CConstraintExpr object) {
				return createCConstraintExprAdapter();
			}
			@Override
			public Adapter caseCIntCompare(CIntCompare object) {
				return createCIntCompareAdapter();
			}
			@Override
			public Adapter caseCEq(CEq object) {
				return createCEqAdapter();
			}
			@Override
			public Adapter caseCNeq(CNeq object) {
				return createCNeqAdapter();
			}
			@Override
			public Adapter caseCLt(CLt object) {
				return createCLtAdapter();
			}
			@Override
			public Adapter caseCLeq(CLeq object) {
				return createCLeqAdapter();
			}
			@Override
			public Adapter caseCLogicConstraint(CLogicConstraint object) {
				return createCLogicConstraintAdapter();
			}
			@Override
			public Adapter caseCAnd(CAnd object) {
				return createCAndAdapter();
			}
			@Override
			public Adapter caseCOr(COr object) {
				return createCOrAdapter();
			}
			@Override
			public Adapter caseCImp(CImp object) {
				return createCImpAdapter();
			}
			@Override
			public Adapter caseCNot(CNot object) {
				return createCNotAdapter();
			}
			@Override
			public Adapter caseCNConstraint(CNConstraint object) {
				return createCNConstraintAdapter();
			}
			@Override
			public Adapter caseCOneConstraint(COneConstraint object) {
				return createCOneConstraintAdapter();
			}
			@Override
			public Adapter caseCConstraint(CConstraint object) {
				return createCConstraintAdapter();
			}
			@Override
			public Adapter caseCTwoConstraint(CTwoConstraint object) {
				return createCTwoConstraintAdapter();
			}
			@Override
			public Adapter caseCNode(CNode object) {
				return createCNodeAdapter();
			}
			@Override
			public Adapter caseCElement(CElement object) {
				return createCElementAdapter();
			}
			@Override
			public Adapter defaultCase(EObject object) {
				return createEObjectAdapter();
			}
		};

	/**
	 * Creates an adapter for the <code>target</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param target the object to adapt.
	 * @return the adapter for the <code>target</code>.
	 * @generated
	 */
	@Override
	public Adapter createAdapter(Notifier target) {
		return modelSwitch.doSwitch((EObject)target);
	}


	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CConstraintExpr <em>CConstraint Expr</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CConstraintExpr
	 * @generated
	 */
	public Adapter createCConstraintExprAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CIntCompare <em>CInt Compare</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CIntCompare
	 * @generated
	 */
	public Adapter createCIntCompareAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CEq <em>CEq</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CEq
	 * @generated
	 */
	public Adapter createCEqAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CNeq <em>CNeq</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CNeq
	 * @generated
	 */
	public Adapter createCNeqAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CLt <em>CLt</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CLt
	 * @generated
	 */
	public Adapter createCLtAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CLeq <em>CLeq</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CLeq
	 * @generated
	 */
	public Adapter createCLeqAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CLogicConstraint <em>CLogic Constraint</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CLogicConstraint
	 * @generated
	 */
	public Adapter createCLogicConstraintAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CAnd <em>CAnd</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CAnd
	 * @generated
	 */
	public Adapter createCAndAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.COr <em>COr</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.COr
	 * @generated
	 */
	public Adapter createCOrAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CImp <em>CImp</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CImp
	 * @generated
	 */
	public Adapter createCImpAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CNot <em>CNot</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CNot
	 * @generated
	 */
	public Adapter createCNotAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CNConstraint <em>CN Constraint</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CNConstraint
	 * @generated
	 */
	public Adapter createCNConstraintAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.COneConstraint <em>COne Constraint</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.COneConstraint
	 * @generated
	 */
	public Adapter createCOneConstraintAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CConstraint <em>CConstraint</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CConstraint
	 * @generated
	 */
	public Adapter createCConstraintAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.constraint.CTwoConstraint <em>CTwo Constraint</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.constraint.CTwoConstraint
	 * @generated
	 */
	public Adapter createCTwoConstraintAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.common.CNode <em>CNode</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.common.CNode
	 * @generated
	 */
	public Adapter createCNodeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ccore.common.CElement <em>CElement</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ccore.common.CElement
	 * @generated
	 */
	public Adapter createCElementAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for the default case.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @generated
	 */
	public Adapter createEObjectAdapter() {
		return null;
	}

} //ConstraintAdapterFactory
